package cn.harry.modular.oss.service;

import cn.harry.modular.oss.vo.OssCallbackResult;
import cn.harry.modular.oss.vo.OssPolicyResult;

import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;

/**
 * oss上传管理Service
 * Created by macro on 2018/5/17.
 */

/**
 * ClassName: MybatisPlusConfig Description:
 *
 * @author honghh Date 2019/10/14 11:50 Copyright (C) www.tech-harry.cn
 */
public interface OssService {

	/**
	 * oss上传策略生成
	 * @return
	 */
	OssPolicyResult policy();

	/**
	 * oss上传成功回调
	 * @param request
	 * @return
	 */
	OssCallbackResult callback(HttpServletRequest request);

	/**
	 * 文件上传
	 * @param data 文件字节数组
	 * @param path 文件路径，包含文件名
	 * @return 返回http地址
	 */
	String upload(byte[] data, String path);

	/**
	 * 文件上传
	 * @param data 文件字节数组
	 * @param suffix 后缀
	 * @return 返回http地址
	 */
	String uploadSuffix(byte[] data, String suffix);

	/**
	 * 文件上传
	 * @param inputStream 字节流
	 * @param path 文件路径，包含文件名
	 * @return 返回http地址
	 */
	String upload(InputStream inputStream, String path);

	/**
	 * 文件上传
	 * @param inputStream 字节流
	 * @param suffix 后缀
	 * @return 返回http地址
	 */
	String uploadSuffix(InputStream inputStream, String suffix);

}
